// 用户上滑页面 滚动条触底 开始加载下一页数据
//   使用滚动条触底事件
//   判断是否有下一页数据
      // 获取到总页数 
      // 总页数 = Math.ceil(总条数 / 页容量 pagesize)
      // 获取到当前的页码 pagenum
      // 判断 当前的页码是否大于等于 总页数
//   没有下一页数据 弹出一个提示
//   有下一页数据 加载下一页数据
      // 当前页面 +1 重新发送请求 要对data中的数组 进行拼接 而不是全部替换


// 用户下拉刷新页面 == 触发下拉刷新事件 重置 数组 将当前页面设置为1
// 添加一个下拉刷新事件 重新发送网络请求 当数据请求过来时，手动关闭下拉刷新
import { myrequest } from "../../request/index"
Page({
  data: {
    tabs: [
      {
        id: 0,
        value: '综合',
        isActive: true
      }, {
        id: 1,
        value: '销量',
        isActive: false
      }, {
        id: 2,
        value: '价格',
        isActive: false
      }
    ],
    goodsList: []
  },
  
  QueryParams: {
    query: "",
    cid: "",
    pagenum: 1,
    pagesize: 10
  },
  // 总页数
  totalPage: 1,

  onLoad: function (options) {
    this.QueryParams.cid = options.cid
    this.getGoodsList()
    
  },
  
  // 标题的点击事件
  handleTabsItemChange(e) {
    const { index } = e.detail
    // 这里必须重新拿到tabs的数据，因为小程序的数据绑定需要用到this.setData
    let { tabs } = this.data
    tabs.forEach((v, i) => i===index ? v.isActive = true : v.isActive = false)
    this.setData({
      tabs
    })
  },

  // 获取商品列表数据
  async getGoodsList() {
    const { data: res } = await myrequest({
      url: '/goods/search',
      data: this.QueryParams
    })
    const total = res.message.total
    this.totalPage = Math.ceil(total / this.QueryParams.pagesize)
    this.setData({
      // 数据拼接
      goodsList: [...this.data.goodsList, ...res.message.goods]
    })
    // 关闭下拉刷新 
    wx.stopPullDownRefresh()
  },

  // 页面上拉触底事件
  onReachBottom() {
    if (this.QueryParams.pagenum >= this.totalPage) {
      wx.showToast({
        title: '没有下一页数据了'
      });
    } else {
      this.QueryParams.pagenum += 1
      this.getGoodsList()
    }
  },

  // 下拉刷新事件
  onPullDownRefresh() {
    this.setData({
      goodsList: []
    })
    this.QueryParams.pagenum = 1
    this.getGoodsList()
  } 
})